<template>
  <div class="room-content">
    <Navbar :appTitle="appTitle"/>
    <Search 
      ref="topSearch" 
      class="search" 
      placeholder="入库任务编号 | 物品名称" 
      :isAdd="true" 
      :isScreen="true" 
      :isType="true" 
      @onSearch="onSearch"
      @onScreen="onScreen" 
      @newBuild='newBuild'>
    </Search>
    <search-tag ref="SearchTag" @getCategory="getCategory"></search-tag>
    <!--分页列表 -->
    <div class="listBox">
      <pageList ref="pageList" :checkedShow="false" :columns="columns" :minLen="3" :listUrl="listUrl" @handleList="handleList">
        <div slot="foot" slot-scope="{item}" class="operateBox">
          <div class="pubBtn" v-if="item.totalUnReceivedNum > 0" @click.stop="handlReceived(item)">收货</div>
        </div>
      </pageList>
    </div>
  </div>
</template>
<script>
import Navbar from "@/components/navBar/navBar_right";
import Search from "@/components/search";
import SearchTag from "./SearchTag";
import pageList from "@/components/pageList";

export default {
  name: "warehousingTask",
  components: {
    Navbar,
    Search,
    SearchTag,
    pageList
  },
  data() {
    return {
      appTitle: "入库任务",
      listUrl: "/inbound/inboundTask/queryByTask", //列表接口
      columns: {
        titleKey: "taskCode", //标题
        subtitleKey: null, //副标题
        content: [
          //内容
          {
            name: "业务类型",
            key: ["typeText"],
          },
          {
            name: "物品明细",
            key: ["goodsClassNumText"],
          },
          {
            name: "待收货/物品数量",
            key: ["totalUnReceivedNumText", "goodsTotalNumText"],
          },
        ],
      },
      keyword: ''
    };
  },
  beforeRouteLeave(to, from, next) {
    if (this.$refs.SearchTag.showSearchTag) {
      this.appTitle = this.$route.query.navTitle;
      this.$refs.SearchTag.showSearchTag = false;
      next(false);
    } else {
      next();
    }
  },
  mounted() {
    this.searchQuery();
  },
  methods: {
    // 搜索
    searchQuery(searchObj) {
      let params = {
        ...searchObj,
      };
      this.$refs.pageList.searchQuery(params);
    },
    // 入库单编号查询
    onSearch(v) {
      this.keyword = v;
      let searchObj = {
        keyword: this.keyword,
      };
      this.searchQuery(searchObj);
    }, 
    // 更多查询页面 
    onScreen() {
      this.appTitle = "更多筛选";
      this.keyword = this.$refs.topSearch.value;
      this.$refs.SearchTag.showModal(this.keyword);
    },
    getCategory(sureObj) {
      this.appTitle = "入库任务";
      this.keyword = sureObj.keyword;
      this.$refs.topSearch.value = sureObj.keyword;
      this.searchQuery(sureObj);
    },
    // 新建
    newBuild() {
      this.$router.push({
        path: "/warehousingTaskForm",
      });
    },
    // 编辑
    handleEdit(e) {
      this.$router.push({
        path: "/warehousingTaskForm",
        query: {
          id: e.id
        }
      });
    },
    //入库单详情
    handleList(id, item, type) {
      if (type == "列表") {
        this.$router.push({
          path: "/warehousingTaskDetail",
          query: {
            id: id,
          },
        });
      }
    },
    // 收货
    handlReceived(e) {
      this.$router.push({
        path: "/receiptedGoods",
        query: {
          id: e.id
        }
      });
    }
  },
};
</script>
<style lang="less" scoped>
.flex(@jc,@ai,@fd:row) {
  display: flex;
  justify-content: @jc;
  align-items: @ai;
  flex-direction: @fd;
}
.search {
  position: fixed;
  top: 93px;
  z-index: 98;
  width: 100%;
}
.listBox {
  margin-top: 120px;
  overflow-y: hidden;
}
.room-content {
  height: 100vh;
  overflow-y: scroll;
  .serach {
    height: 0.33rem;
    background: #f2f2f6;
    border-radius: 0rem;
    margin-bottom: 0.16rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    line-height: 0.33rem;
    padding: 0.1rem 0.12rem;
    .placeh {
      font-size: 0.16rem;
      font-family: PingFang SC;
      font-weight: 400;
      color: #888888;
      line-height: 0.23rem;
    }
    .icon {
      width: 0.15rem;
      height: 0.16rem;
    }
  }
}
.operateBox {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  box-sizing: border-box;
  padding-right: 3px;
  font-size: 28px;
  font-weight: 500;
  color: #1890ff;
}
.pubBtn {
  margin-right: 20px;
  &:nth-last-child(1) {
    margin-right: 0;
  }
}
</style>